﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Management;
using System.Net;
using System.Net.Sockets;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using ARSoft.Tools.Net.Dns;
using Hongsh.Pay.Client.Proxy.Handlers;
using Hongsh.Pay.Client.Proxy.Http;
using MapleLeaf.Pay.Pay;

namespace Hongsh.Pay.Client.Proxy {

    public class HongshPayClientProxy : HongshPayClientPlugin {

        public override HongshPayClientPluginConfig Config { get; }


        public override object View { get; }

        private static HongshPayClientProxyConfig _Config;


        private readonly HttpServer Server;


        private static DnsServer DnsServer;


        private static DnsClient DnsClient;


        private static bool init_ssl;


        private static readonly string HostsFilePath;


        private static readonly Dictionary<string, string> PEMDICT;



        public HongshPayClientProxy(HongshPayClientContext ctx) : base(ctx) {
            Config = _Config;
            View = new ConfigView(_Config);
            Server = new HttpServer();

            string[] targets = _Config.Targets;
            for (int i = 0; i < targets.Length; i++) {
                string uriString = targets[i];
                Uri uri = new Uri(uriString);
                string value;
                if (uri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase) && PEMDICT.TryGetValue(uri.Host, out value)) {
                    string tempFileName = Path.GetTempFileName();
                    FileStream fileStream = File.Open(tempFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
                    StreamWriter streamWriter = new StreamWriter(fileStream);
                    streamWriter.Write(value);
                    streamWriter.Flush();
                    Server.Context.Add("TEMP_PEM＿" + tempFileName, fileStream);
                    Server.CertificateList.Add(uri.Host, tempFileName);
                }
                if (!Server.LisenterList.Any((HttpLisenter d) => d.EndPoint.Port == uri.Port)) {
                    Server.AddLisenter(new IPEndPoint(IPAddress.Any, uri.Port));
                }
            }
            Server.Context["HongshPayTradeManager"] = ctx.TradeManager;
            Server.AddHongshPayProxyHandler();
            Server.AddAliPayProxyHandler();
            Server.AddSissPayProxyHandler();
            Server.AddBWPayProxyHandler();
            Server.AddBWInsPayProxyHandler();
            Server.AddLEPayProxyHandler();
            Server.AddXDDPayProxyHandler();
            Server.AddYTPayProxyHandler();
            Server.AddEnjoyPayHandler();
            Server.AddJWPayProxyHandler();
            Server.AddPosbarPayProxyHandler();
            Server.AddYouLiPaiPayProxyyHandler();
            Server.AddXLPayProxyHandler();
            Server.AddBY0PayProxyHandler();
            Server.AddBestPayProxyHandler();
            Server.AddHeliPayProxyHandler();
            Server.AddLiantuofuProxyHandler();
            Server.AddDFTProxyProxyHandler();
            Server.AddPospalPayProxyHandler();
            Server.AddShouQianBaProxyHandler();
            if (_Config.IsRunning) {
                Start();
            }
        }

        // Token: 0x060000A3 RID: 163 RVA: 0x00007C10 File Offset: 0x00005E10
        private static DnsMessageBase ProcessDns(DnsMessageBase msg, object clientAddress, ProtocolType protocolType) {
            DnsMessage dnsMessage = msg as DnsMessage;
            using (List<DnsQuestion>.Enumerator enumerator = dnsMessage.Questions.GetEnumerator()) {
                while (enumerator.MoveNext()) {
                    DnsQuestion dnsQuestion = enumerator.Current;
                    string[] targets = _Config.Targets;
                    int i = 0;
                    while (i < targets.Length) {
                        string uriString = targets[i];
                        Uri uri = new Uri(uriString);
                        if (!dnsQuestion.Name.EndsWith(uri.Host, StringComparison.OrdinalIgnoreCase)) {
                            i++;
                        }
                        else {
                            dnsMessage.AnswerRecords.Add(new ARecord(dnsQuestion.Name, 86400, IPAddress.Parse(_Config.Address)));
                            Console.WriteLine(dnsQuestion.Name);
                            if (dnsMessage.AnswerRecords.Count <= 0) {
                                dnsMessage.AnswerRecords.AddRange(DnsClient.Resolve(dnsQuestion.Name, dnsQuestion.RecordType, dnsQuestion.RecordClass).AnswerRecords);
                            }
                        }
                    }
                }
            }
            return msg;
        }

        public override void Start() {
            try {
                if (!init_ssl) {
                    X509Certificate2 x509Certificate = new X509Certificate2("root.pfx", string.Empty);
                    X509Store x509Store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
                    x509Store.Open(OpenFlags.ReadWrite);
                    X509Certificate2Collection x509Certificate2Collection = x509Store.Certificates.Find(X509FindType.FindByThumbprint, x509Certificate.Thumbprint, false);
                    if (x509Certificate2Collection.Count <= 0) {
                        x509Store.Add(x509Certificate);
                    }
                    x509Store.Close();
                    init_ssl = true;
                }
                StringBuilder stringBuilder = new StringBuilder();
                if (_Config.Mode == "HF") {
                    foreach (string uriString in _Config.Targets) {
                        stringBuilder.Append(IPAddress.Loopback.ToString());
                        stringBuilder.Append(" ");
                        stringBuilder.AppendLine(new Uri(uriString).Host);
                    }
                }
                else if (_Config.Mode == "DS") {
                    if (!string.IsNullOrEmpty(HongshPayApi.GateWay.Query)) {
                        string text = HongshPayApi.GateWay.Query.TrimStart(new char[]
                        {
                            '?'
                        });
                        string[] source = text.Split(new char[]
                        {
                            '&'
                        });
                        string text2 = source.FirstOrDefault((string d) => d.StartsWith("ip=", StringComparison.OrdinalIgnoreCase));
                        text2 = text2.Substring("ip=".Length);
                        stringBuilder.Append(text2);
                        stringBuilder.Append(" ");
                        stringBuilder.AppendLine(HongshPayApi.GateWay.Host);
                    }
                    foreach (ManagementBaseObject managementBaseObject in new ManagementClass("Win32_NetworkAdapterConfiguration").GetInstances()) {
                        ManagementObject managementObject = (ManagementObject)managementBaseObject;
                        if ((bool)managementObject["IPEnabled"]) {
                            using (ManagementBaseObject methodParameters = managementObject.GetMethodParameters("SetDNSServerSearchOrder")) {
                                methodParameters["DNSServerSearchOrder"] = new string[]
                                {
                                    IPAddress.Loopback.ToString()
                                };
                                managementObject.InvokeMethod("SetDNSServerSearchOrder", methodParameters, null);
                            }
                        }
                    }
                    if (DnsServer == null) {
                        DnsServer = new DnsServer(IPAddress.Any, 32767, 0, new DnsServer.ProcessQuery(ProcessDns));
                        DnsServer.Start();
                    }
                }
                if (stringBuilder.Length > 0) {
                    if (File.Exists(HostsFilePath)) {
                        File.SetAttributes(HostsFilePath, FileAttributes.Normal);
                    }
                    File.WriteAllText(HostsFilePath, stringBuilder.ToString());
                    File.SetAttributes(HostsFilePath, FileAttributes.ReadOnly);
                }
                Server.Start();
                Config.IsRunning = true;
            }
            catch (Exception ex) {
                var a = ex.Message;
                Stop();
                throw;
            }
        }


        public override void Stop() {
            if (_Config.Mode == "HF") {
                if (File.Exists(HostsFilePath)) {
                    File.SetAttributes(HostsFilePath, FileAttributes.Normal);
                }
                File.Delete(HostsFilePath);
            }
            else if (_Config.Mode == "DS") {
                foreach (ManagementBaseObject managementBaseObject in new ManagementClass("Win32_NetworkAdapterConfiguration").GetInstances()) {
                    ManagementObject managementObject = (ManagementObject)managementBaseObject;
                    if ((bool)managementObject["IPEnabled"]) {
                        using (ManagementBaseObject methodParameters = managementObject.GetMethodParameters("SetDNSServerSearchOrder")) {
                            methodParameters["DNSServerSearchOrder"] = new string[]
                            {
                                "114.114.114.114",
                                "8.8.8.8"
                            };
                            managementObject.InvokeMethod("SetDNSServerSearchOrder", methodParameters, null);
                        }
                    }
                }
            }
            Server.Stop();
            Config.IsRunning = false;
        }


        static HongshPayClientProxy() {
            _Config = new HongshPayClientProxyConfig();
            DnsClient = new DnsClient(new List<IPAddress>
            {
                IPAddress.Parse("114.114.114.114"),
                IPAddress.Parse("8.8.8.8")
            }, 5000);
            HostsFilePath = Path.Combine(Environment.SystemDirectory, "drivers\\etc\\hosts");
            Dictionary<string, string> dictionary = new Dictionary<string, string>();
            dictionary["api.mch.weixin.qq.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+jCCAWegAwIBAgIQV73DAJNZ4b1B0uHrr2HWuTAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwODUyMTFaFw0zOTEyMzEyMzU5NTlaMCAxHjAcBgNVBAMTFWFwaS5t\r\nY2gud2VpeGluLnFxLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA04ObOFDgIBEwREYk\r\nJVhgQo1yp+Dqtj/z5NA+QJfoCrYk9ll8GlhHvzC+H9leX/7NL3f4P7KaM22sJf5e/iYXciezSC7H\r\nM/pbi5ahVn0HX9mEOwQXc0LKyhImQVaudF8PgD6nnTBaLme0YhElX1yTYmGr3Fgm3LwbYDwkgaKL\r\n8l0CAwEAAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EWMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBAHQuen/qcevVa5moYz8Nmajf\r\n8OFHDIVriYWpeXrmOGKhaHTEEdY/SQJ38Nh+ydviI95gIwm9zJgyE6Uv6I/0+oYVduPasmtSrvij\r\nth81HByQcaY24R3P4pL/PSVeohz2Whs9vIFloF68NDQjkrCUW7IEr0v74e6OKJVALuei2lke\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXQIBAAKBgQDTg5s4UOAgETBERiQlWGBCjXKn4Oq2P/Pk0D5Al+gKtiT2WXwaWEe/ML4f2V5f\r\n/s0vd/g/spozbawl/l7+JhdyJ7NILscz+luLlqFWfQdf2YQ7BBdzQsrKEiZBVq50Xw+APqedMFou\r\nZ7RiESVfXJNiYavcWCbcvBtgPCSBoovyXQIDAQABAoGAQ8xIodmSrdS0ov3Usj/Mwyhx2wwGUBrZ\r\nw7tYaP4IO/68hFaUqCEqBkfKeY0EakLTZGbRJSHLubZq2tbZfh+ZncGZnEKywWCghP3B5uqXTDHV\r\nkk6Qz78KBxeR0B9UHGcVLllG7sGO8S7fGZEJiL02zbzCxPN9esMuXADkpGGfmUUCQQDrljg5pMeC\r\n4JIpdQVrIOUJRf10rIZo9op23XVimWW3+ACeA/31MLL+0saYTLEIfhDY9x8OAjK1DQBa28TlD7uT\r\nAkEA5ddoD8L3crd8CX1S4TNnKtb7tyG609YM6n9JMQYPHQl3ezxRPod3gybYXatjBPyhIPgVxaKV\r\nU7ULve+HhNSwTwJBAIg8b7lOBB44Ve3pgT+pXynUsrSlDHlokTwZ50ckpEEWBu1aK6N+DRT1uOjb\r\n+MiLdpyxk+Da/o3avejNDHjWd0cCQA9UTZF3jG9vQ2uSmzt/5SqbShCNxFsqlJPzR1torwtdvUVP\r\n4Y9NE7CAn7+nlaQYgVqkkTcsP89kbNMPLbezQ8sCQQCTdekrm1LhiTA8P1YvtaIn5qKt6kG35cbF\r\ngC+XlTPqb63eqDu1y7TDuct2YwsiqpxGWRvOzJpn4aHxd8I5FMx0\r\n-----END RSA PRIVATE KEY-----";
            dictionary["ytpos.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+zCCAWigAwIBAgIQSG3whAHGf6hMjHrjUu559DAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMDExMTkxNzIyMDFaFw0zOTEyMzEyMzU5NTlaMCExHzAdBgNVBAMeFgAqAC4A\r\neQB0AHAAbwBzAC4AYwBvAG0wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOqnASbPlXjDiEc\r\nQc3OrDUQn8XVpL2rI+/0NuQVBH7ja+tdBbl04ALGe7rSJqWFk6j2ZV7Pr8TtINwEvkaYrAZu44mp\r\nuceACdBapG9OosAgaYihwmRaoc5usy2+agPECHTzDRgfVU8urt/CygYr+zs9vJKNtb4piBaP4zwX\r\nqhqtAgMBAAGjSTBHMEUGA1UdAQQ+MDyAEDKI/IvvruZTk579VjBv0OuhFjAUMRIwEAYDVQQDEwlV\r\nTlNBRkUtQ0GCEFAap8ITpqGYQt5qeJWDsB4wCQYFKw4DAh0FAAOBgQDc+PoMCBMlFLX9MuNGS6Ei\r\npV2jIdbwm+3dYOce89s8AWqaZ4cmZ9v3rIFDWbmB8OgyIehI0Dp/LEzrriHAKKuqOWXT17zeotCV\r\n+c9yLzVmyl/iL4p2mRsLDJsTSuUGmcaH2YFY1Nz8wOH+u2fj0DFctNTDj2HVAGvec4OXEuoAPw==\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXwIBAAKBgQDTqpwEmz5V4w4hHEHNzqw1EJ/F1aS9qyPv9DbkFQR+42vrXQW5dOACxnu60ial\r\nhZOo9mVez6/E7SDcBL5GmKwGbuOJqbnHgAnQWqRvTqLAIGmIocJkWqHObrMtvmoDxAh08w0YH1VP\r\nLq7fwsoGK/s7PbySjbW+KYgWj+M8F6oarQIDAQABAoGBAMKVnUg+z1d1nI+jwnrI/FbsKXVdqk0S\r\n/76f67ZR/AgKWjPNGG4dm7Hxdd2RRCX2XoB9w0Md+qA2vnaFhcawo7K5fuXRqBGvB4pcNcazSMpm\r\nR2PW76OvnJIkFXE9K59mzdg/I89W0V3W4J/qT1vQ7BeEW6VEmZoy88tcs8Qg2AmhAkEA95icX4xe\r\nGb+16w9pQ86MpFKI5ts5pO2ByvWAsxw4l9s53qz5A/4fDxRBX5xt6keOqCJ4sxIUNcK7j8vh0oHg\r\nYwJBANrZzTtu+D3Dyqw5iVoi54PDvdM6IddBDmVdqFeQKYa+yse0VAXAi8RfriXKRpIYZJ6hb8C9\r\n1+zYS/B+Aec3na8CQQDsIkEooy9vsTXni5giEhBx+0ETowqz78v0a/WlXIng0jS72Q3Yr/ihIflD\r\nHWZ6pGo6kj240soxh5noB1NEt5bvAkEAtGXw3Nr+Wbt45zqOU/SNrnm9kc5Lcuo3easYRwWYlW/U\r\nK4Yj9JHhJEBShugT//2Hg5NDUTesM5mgD19vJi8cFQJBANfuTwRLSU+ROWbyKqW2QG1yqg9bBbgI\r\nVi9sXqAmit0veb2C9qfSVlGI90mQKCjwAJCCXdvEAqRpVajhjgYptLA=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["mapi.020leader.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB9zCCAWSgAwIBAgIQjGHXpyV8l65KUp9w1GFvjzAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwOTE4MDhaFw0zOTEyMzEyMzU5NTlaMB0xGzAZBgNVBAMTEm1hcGku\r\nMDIwbGVhZGVyLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoLT+Ir3rzq2cjUzp67uv\r\n1UnInSIrMxvlYGaEkvt/HQWwIsIh1T2Ujek8gV90Xsrot2KjKH+k+ZdD1N+4rtwCciufxrM1giES\r\n6bszrn2Ny9lRPLO0Y1P/FmdnMzCPaE+HhDcwEs27qB86OodRZ67s03Fu4z7aCxr4B2F2pAg7Gw0C\r\nAwEAAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EWMBQxEjAQBgNVBAMTCVVOU0FG\r\nRS1DQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBACujqNPsvKDZ5pO2PChtEWFlCTAa\r\n7X1j6G6JrLNtnUmaP7lCrfccuorKFlxpZDmse+hVLdu0ZRH3gNxZI4reun1ZbTsCnzdygjV4OuoC\r\nJG+BSF65Nm9VZ0ucfjkwksi9niT4vHL3hKfud12LcCwx14sFP/y5sZ9QezkS1Y+GTn+o\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQCgtP4ivevOrZyNTOnru6/VScidIiszG+VgZoSS+38dBbAiwiHVPZSN6TyBX3Re\r\nyui3YqMof6T5l0PU37iu3AJyK5/GszWCIRLpuzOufY3L2VE8s7RjU/8WZ2czMI9oT4eENzASzbuo\r\nHzo6h1FnruzTcW7jPtoLGvgHYXakCDsbDQIDAQABAoGAfV0zcn6dWNjt6vw47n+3JrcsHAfvkysL\r\nwCu497/g5Q7u2+583g/vttRfMrz31oqLB6OWi50nYNyzOXhcZWuTK6hLJg2uvCvU90jdbnF0L7HB\r\njp6BbC90pXnhTMkppM8LlrU4TEgN+a1xYmrD31cfAaH1eNPoKRS+lNLDAaz/lTECQQDTWUE4kaIq\r\nWlFb22l+jvxrmP1bGhhDP8TN+i5Cgco+/ggfhWrgJSI7LkHp47sH/4Nt6gEy07Rw2m87+GldoqV3\r\nAkEAwqjLqLl/aFgTi86mENQkJQaKspiY5YTeCP9iGItLTF0mcPbSTylaMFg+vQD7iMAfKAmqiaVz\r\nJGs4whYcyDF0mwJBAJkjwEV8CPQFU5RqjKs+chqI1XOwmcoIp9LUJ7bbEq/IJByq8MEPRxl4sBwI\r\nfhoSg6od99ZbXhCzxgu/OKG3W4sCQAVhCrev4JBulqOvYzFl21XWl3CV/Ouiv0v6WqiY+My0akKG\r\n34rmdqKNXbZ1V34Q6Qt/MOI62zKvb9MVL1hs3W8CQEOsFoh4wtrhZ4uvBENr+sKo69EFyuaJKjS7\r\npZunpPfxVzkusE2ij4dKBYC0hy3oM0hfgrPa0RIev1uzk7PkB38=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["mobilepos.yeahka.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+TCCAWagAwIBAgIQR1awtkgwlYpLyY+bZSHtZTAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwODUyMTBaFw0zOTEyMzEyMzU5NTlaMB8xHTAbBgNVBAMTFG1vYmls\r\nZXBvcy55ZWFoa2EuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgOEIwQQABMSwbIdra\r\nJ8MBb9PIGcrQjSAHtt+9GtO67AtcQunjMxN7MJLu+ltGbNy7BA7lVXM4na/D01Yw+TVOjyqRqfgk\r\nnWSD2Mx3QT5cEKa+uRA2C92ZepMpO8ImAzFLeurlH9Nni/f1BUdlQkHGgpe9qgiFzNnEHmT9VpSJ\r\nQQIDAQABo0kwRzBFBgNVHQEEPjA8gBAyiPyL767mU5Oe/VYwb9DroRYwFDESMBAGA1UEAxMJVU5T\r\nQUZFLUNBghBQGqfCE6ahmELeaniVg7AeMAkGBSsOAwIdBQADgYEAny1fzPj4mt9Rwm+XJ6NKNgs+\r\n2rbQRsaEB5Qpe1mSKzZJRvaFL8k12rtxi2MCqdNKmEA6OHKZzirBfklQlBpWSx4kTglwaFlWrBe3\r\nUujZAXkkRoVeiv2bFGf1A20l4KRhNyzQ/IXi/u65s4Ib58btQt9AP3Uya1LXqabnJWD6S4I=\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQDgOEIwQQABMSwbIdraJ8MBb9PIGcrQjSAHtt+9GtO67AtcQunjMxN7MJLu+ltG\r\nbNy7BA7lVXM4na/D01Yw+TVOjyqRqfgknWSD2Mx3QT5cEKa+uRA2C92ZepMpO8ImAzFLeurlH9Nn\r\ni/f1BUdlQkHGgpe9qgiFzNnEHmT9VpSJQQIDAQABAoGBAMiuccdAliF7Ak/yeC/jgKzrivDA7P7G\r\nIRHmgtB9j13w4KYeGbpJP7l1mz0bhNA+pT0Zf7+RQIQ+1k79+1nv4t2Vc9e8m9zNOxWmnZqUdIBn\r\ndQwB5X84eSF6R3LD42OHcNDSMujEpz4ccaTECLiJuRnOoSa5zGrwqnOkG2/57U9FAkEA8KeVT1W4\r\nS5I5C4s1dx+LV5Gv3PUwACr16lauDX3oqLh362V/KX8/X7AhV8CaHd2LR+sMdXIcgRO3M72DgkeV\r\nRwJBAO6EZQW8hSpdIs3DsZGztdWY1DmUQZR6wyV/Xnzstw3gQ82VWaOiBJ9PAD5huXyEpt9yVtd2\r\n9EURenALyBFIUTcCQGypvumLsyOsasWjngij3a80wUvsCjiJLXEaoozFBYDpinxn3/tE0cDLLsMI\r\n3I4PswxOPdnqJKTD2j0qnW7+E5ECQBJQSBFwsCjYjduOswuk6MlFusXRBFgKNQGkDfU5l7SRC6O1\r\nW/ScdA5nWnVvu3Y8GTP+63wPviGvfd8siGgLTXECQCUGoElxSgFQbxr2Yt4udDP3eTFkdDMpSBQd\r\nMY5hGLoG6xmsD2p3iHPJIuIRdKaTykA2e57VwLYV5XrejsKZJsc=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["open.vip-yun.cn"] = "-----BEGIN CERTIFICATE-----\r\nMIIB9DCCAWGgAwIBAgIQOBSJK2cLF6JJEEY5OemP3TAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTEyMDYwODI3MzZaFw0zOTEyMzEyMzU5NTlaMBoxGDAWBgNVBAMTD29wZW4u\r\ndmlwLXl1bi5jbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7RtiVwNRGM6zvDfHtIjLx3dQ\r\nbuU4q66J08wzpSOV2Yo3Vv7TGM/SF/AcZ5C6GtBzNkd50nVXqijAEXpyiRBaqdMp4DARH2C5i/47\r\ne59EbVFnUIQyRSAbQFY5adDFP/bnMfNyiAPcFpblAergr6bj02WtTEd1nDlJ5jylD+P1OKUCAwEA\r\nAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EWMBQxEjAQBgNVBAMTCVVOU0FGRS1D\r\nQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBAM5LafEhFFBfNXAGrGS7aZVgE8Y7LWxu\r\nJYCYQyBERZdODJae6Lo3YIx2aoiXkFrDWI8NUHHMhxt+zS3gTxr06/722ZqAJYCwTnrDxI73fmgl\r\nyngAqSlHtbaYNFLfrKsXQKUokGi6o9div3wM4L3hFWfFhjr67+ryzrr5wfrjySCi\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXgIBAAKBgQDtG2JXA1EYzrO8N8e0iMvHd1Bu5TirronTzDOlI5XZijdW/tMYz9IX8BxnkLoa\r\n0HM2R3nSdVeqKMARenKJEFqp0yngMBEfYLmL/jt7n0RtUWdQhDJFIBtAVjlp0MU/9ucx83KIA9wW\r\nluUB6uCvpuPTZa1MR3WcOUnmPKUP4/U4pQIDAQABAoGBAMmQiwQPhMSDC9aI0NPPqvSRoKX1ZTzF\r\nrtOHd6v+WWhKkIr7LDeejCrfazY7mYosBJVzI8PfDzxPUiBJqM6OQZMUUzSG6m4eOdsalsadAa1r\r\nl64uqHvVhTCihq0JQroebWzJ7T/sHsDHJicNqpTYaVUAEzGEnlV2Q4O5kO6osq5NAkEA9LPZj/Sq\r\n/v73YfWsA/8yeBlHufq0aBYpvMONHUt67yvpvO7ae9GQAtua4sysbJNBTvSFJSltIEjKp2UHEb7N\r\newJBAPgNww0XJuAQMny7ux+EY/al2/NX+K9Nl3sPAD5XcYQJeUyqpNq5geyLpplscMuJxre/TyfG\r\nhl83N9+49sv3aF8CQQDgpuj7L415M4zcI1Z8CONFvTfLd23/DTHeOc2o8m33e+JH8SUmfZtv9Ds7\r\nMtqth3dyzCwclO65r/pVOfwGf5xXAkEAhgsxxyYmrNgz4DG2ed6aAlQ4mrSEP38nh6lgkU/BmP9h\r\nnCtusH+klQYWPjxaa7MFPpBUHwNp45Q8Tlpui2Qj8wJAVI8c41FVC22QIsQ9JXP2JO3w15HSqkL2\r\nifuEcVZxuRYFxpBDPyngWfI5FO/yNGEmj/66xRBaQY+DoUcKeeEanQ==\r\n-----END RSA PRIVATE KEY-----";
            dictionary["openapi.alipay.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB9zCCAWSgAwIBAgIQgMiIJF3yQJBH0jJkHFgsFjAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwODUyMTJaFw0zOTEyMzEyMzU5NTlaMB0xGzAZBgNVBAMTEm9wZW5h\r\ncGkuYWxpcGF5LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAttpROJOjsN4HeSQ6YxXl\r\nutNO6E+RrHkhOADuxlQs1NIWx9jQju3fw4ojDmL93s64KbtTZphYR/11PvtiUHC9T7QjNwoX3Zi8\r\nLKl6gRT8QrLjkqilt+EOJK3x7z8fICoKo7jxt/0wxMxTAJh2kepswcvbwY2yM+I0abKyg8IlnF0C\r\nAwEAAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EWMBQxEjAQBgNVBAMTCVVOU0FG\r\nRS1DQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBAAv53tXFvonpH76+pccQo74ctZGi\r\nydeY3+tuvpT30zapjLzdAvQNXaSlY4+CXvcXwrENNs3s0HsZBIRc/PYs9xiaGsgopaqMkOKY2PD2\r\nMps2zRN1zZCUHYBjBT2etbR/q9Y+PQYPkJ9RLdVj46ufwugBdS4vg7toPxdf3ELiuZYZ\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQC22lE4k6Ow3gd5JDpjFeW6007oT5GseSE4AO7GVCzU0hbH2NCO7d/DiiMOYv3e\r\nzrgpu1NmmFhH/XU++2JQcL1PtCM3ChfdmLwsqXqBFPxCsuOSqKW34Q4krfHvPx8gKgqjuPG3/TDE\r\nzFMAmHaR6mzBy9vBjbIz4jRpsrKDwiWcXQIDAQABAoGARe7fi3zj6RwxzYIuloDkePyiPDVaaJV3\r\nP/0TVWUSNF8ZeVuSAGg34Yhuee0gXVvAka1ka2Out/HXKrxoUI2dyTzTQDcwv60VqvK9O5EYiUHi\r\nyChb9c9zJbPjB9F5BAmRD8qGM1x7LP1EXSE1R7N7WNs7rUczvWEfBWmAYOINth0CQQDFeiR/c/LX\r\n+E9m8oArpHNOqpbFMhnk6Y+KXvwKvrS+b0t9B+3V5AICGbK2FDGT0S9Qjxzz34m7HXCGoLiXRLo/\r\nAkEA7QqukV8PL6DnQTOgjfO5l3knkegCAEJk4U08bgsfNj2U4r1fYAzsDDgydzCjRPqS/yEL+O4p\r\n3O+gLVPxMqzqYwJAbkWKY/FnRdpO3HnFwJkQGnl/v5X+h6k0klv/+jAL1dtoF+V5ldrAlFOtS6dz\r\nF8vT0/RWgofs7SO/Vi4hZbbnGQJBAKYbVystpvGkWol5SShQQ5ze3JjFMSnHXPP48MDYcF3NF5kw\r\nRTaEt6D0fIDDh5Yd1YaNPNuK4bEeBmvdJ+dv/qsCQFNd7Fy6VGr+IDxEbpQTi5/hqUD53CBTzGm5\r\npoTITASMf/gub0e7TOjEgM+CJ6z1LMkAaquWRQ4fxhd3EDYuQpo=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["partner.95516.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB9jCCAWOgAwIBAgIQM2qLxziEsrBOXnLi3Jk5pTAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwODUyMTJaFw0zOTEyMzEyMzU5NTlaMBwxGjAYBgNVBAMTEXBhcnRu\r\nZXIuOTU1MTYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDL2s0BTWp0J6iVPYe990by\r\naL5G14fl8QoMVp9T0jwYTqBB9QOAfMf2H03Bdm08qSbxxSB95IX1zmIOHkRwFqE3rEnzDBV2FIko\r\n1wv3e9NM7yqcYkxpiFECr8Z+8e0kHSlYqDUN6abU8wXhXDhuUt1kfwHpRycHtG3rydJ/SgokWQID\r\nAQABo0kwRzBFBgNVHQEEPjA8gBAyiPyL767mU5Oe/VYwb9DroRYwFDESMBAGA1UEAxMJVU5TQUZF\r\nLUNBghBQGqfCE6ahmELeaniVg7AeMAkGBSsOAwIdBQADgYEAyUfx487AzgKp2nT0Gynsz1l+A1tF\r\nb5DRLhWtt+M9mmzvUzKA2y2Gy0V5rlEdLuUo3xD2JsHzVWxLIOl/AhPmLnc7JH69ZsxnNYdxhaR5\r\n/GQVaoR0pF+3kaQm5HIDHIl8tETUYK1AkXcWYIUy6096qyZI4wEmwX+K8FYNYZ4P1BM=\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICWwIBAAKBgQDL2s0BTWp0J6iVPYe990byaL5G14fl8QoMVp9T0jwYTqBB9QOAfMf2H03Bdm08\r\nqSbxxSB95IX1zmIOHkRwFqE3rEnzDBV2FIko1wv3e9NM7yqcYkxpiFECr8Z+8e0kHSlYqDUN6abU\r\n8wXhXDhuUt1kfwHpRycHtG3rydJ/SgokWQIDAQABAoGAd6ypsVwLZMlrdMG8kM88PU80dU5On7UT\r\n2w53VrQTR4nRFyeJuMKIeXsDINIvau86x7CcVIv2AMn6UqN+NfdzCLm1sm2JP7DUtv7uEwt3k7WL\r\njGc4ScOpelYPAi4X1mQ/14lBMcI2m14KpY9TJ+8lOHyi9YpsdvzZ+BOoqMZh3ekCQQDfFc1LtrF/\r\nrvRd2dnQQr7yN3p+eVTfgoKRNVTZQi3ZCW/lFAhE+UP4W/xIG1QiDeRdBPQeESxFB/EFPFYFTvuD\r\nAkEA6e6j93dWyuD+OGglMStyxDKH0lw5ItfbFJ4EoL0jFfjW2yhmrG8W6q5XnjdSyUhIlmF+/gjz\r\n32O2CUM89PlN8wJASKI2l4JCRIpYMf5uNqqktQRvM6KZibRagqDUoXA0sUerUPC2yI5IHSMF/ww2\r\n1mejhM3KFcgNm+Q8CzJb55qRtQJARYs/TYM51yhaCzTS0bJD9RW8kQn/pl8bbx6m644uzwph/Vce\r\nZubDnlLkE1IJF3OYuLQVR7ornd6LsGc/yOgQhwJAbmLgLQDIOAr/9TCDotAq6LJzMQ4L/vnV+OFo\r\nalINfcqgOTzHG9bY1eK3+9lBvD8ftHPAMV8oNJ/wSi7SjHo9/g==\r\n-----END RSA PRIVATE KEY-----";
            dictionary["paygate.leshuazf.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+TCCAWagAwIBAgIQq7MLlGMBM7xF1L4sCcBKAjAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTA5MTcwODUyMjNaFw0zOTEyMzEyMzU5NTlaMB8xHTAbBgNVBAMTFHBheWdh\r\ndGUubGVzaHVhemYuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsnDPHnKE+mqIp8DQ0\r\nOzZWhsYNoKr64zi8dnKdmMm/IEOrGwCW2IPX8WSnOLXtqxw0rQ6pTcb2rP29RFcrP+twGZ60Vdz0\r\nO4HGCEstYAPwrYBNTZITO2/mUhP0fLKynpbgOkGk4ZlMs6Rhujmv4iW0zuWsTvaCyKUw+un9NWQH\r\nEQIDAQABo0kwRzBFBgNVHQEEPjA8gBAyiPyL767mU5Oe/VYwb9DroRYwFDESMBAGA1UEAxMJVU5T\r\nQUZFLUNBghBQGqfCE6ahmELeaniVg7AeMAkGBSsOAwIdBQADgYEACo8fZpyEmn1dE0m0kLT+BghW\r\npwpjHE3crM/9EZG/CP3PVLsvY0mY2h6fnGw8nFsXZ/nNytM1MToxHI2vDLZPyoug86iOZY/+Pb5a\r\n+p3rq5pT70fo5LYe9xvGyIzq7ral0bNjpTTTJe9n/s251hp4HSAQZ1DDhqjq3Wr5nPiVqbE=\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQCsnDPHnKE+mqIp8DQ0OzZWhsYNoKr64zi8dnKdmMm/IEOrGwCW2IPX8WSnOLXt\r\nqxw0rQ6pTcb2rP29RFcrP+twGZ60Vdz0O4HGCEstYAPwrYBNTZITO2/mUhP0fLKynpbgOkGk4ZlM\r\ns6Rhujmv4iW0zuWsTvaCyKUw+un9NWQHEQIDAQABAoGBAKopJsaOe0r7KAhN+zjOcqfkHxTKIiRI\r\noeLwpdcFC0X2aZ8hdHhAo+Da4M4VEwxkld68B+sReKYvLclKuOAzGEYBEMgNvuw4rOxRs0M6GeLY\r\naKV3bK0iSdSyyFMlQTsRK0mKcI40d+HkELOMgvoeru0kG2H++eSUM6HFGmE6z1idAkEA0CaQMYCs\r\naLe4/kUw4wb09AHDZtSQDFOVGHcKpvJBA+E0ZXry9hnYrfk+F+GvQlp+od0Qss1n7LOhSscUcfxM\r\nhwJBANRKHwU/ZgveCZLS1vRrRgLG++xyEt2NYozfBtNgcu0bVAZotjgTQghQJM5iS1dF/ux+4bYx\r\nsHS4xJ57sqLKzacCQD8UgLxPx3AQxYJhS5hxokhURHhkUKc7qUJ5yQOhBOz9EdjzMrA8UvsePqAU\r\nJ/3O2POKwCW/tA/6vBWiUWLd1/8CQDieWC2nHglWO8lr8CaaIb8F4RTLy9pJJhqaNRDVLXGtkzhu\r\nXwMPp9HdxiNBNgTdx0K+CGb2U7Cdwtrd9OPUIQsCQBVj5KDDxOCbpBIaeKIfeUAbLwxrqzTlw3L8\r\nBLJtbq6cez1ThsbFMvqv+WeXoU0cWdTlRU/W8Ifj7c/oPQN0fxg=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["pospal.cn"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+zCCAWigAwIBAgIQRtIk2V8cJ6tP7vsgE/9euDAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMDA5MjgxMjIxMTRaFw0zOTEyMzEyMzU5NTlaMCExHzAdBgNVBAMeFgAqAC4A\r\ncABvAHMAcABhAGwALgBjAG4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMEIr1Q60XKl+h0s\r\nou6svTmtQpazfetCRCS80/j/ejOGgl9imgLgz/dcz0/yKs9O2Vrmr9f+gqfPO8vjgDpmfI2XWgdW\r\nrPj6LqAVp7I7PqUtk33HQevSPRbRRWefgyRix0illGf7Fw2+mVOI7wLpRlJoqtP9sL62B1WgAbLf\r\nZQ55AgMBAAGjSTBHMEUGA1UdAQQ+MDyAEDKI/IvvruZTk579VjBv0OuhFjAUMRIwEAYDVQQDEwlV\r\nTlNBRkUtQ0GCEFAap8ITpqGYQt5qeJWDsB4wCQYFKw4DAh0FAAOBgQDO9SMH0UbXcfrH4woWoZzG\r\nAXqUg8DubJCjPnkUmEooZxBXS1Y/4Y3vXCVW3KKsCGZdPsooS6PtkwpgynuulO077oW3t9M01VPR\r\nYzjmh3fi3twz35/o5HxAaLUdTi5K3QXejUNLzAlBvpYmF7ZJBNz1b8iASm73wl82wpQACvPkkA==\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICWwIBAAKBgQDBCK9UOtFypfodLKLurL05rUKWs33rQkQkvNP4/3ozhoJfYpoC4M/3XM9P8irP\r\nTtla5q/X/oKnzzvL44A6ZnyNl1oHVqz4+i6gFaeyOz6lLZN9x0Hr0j0W0UVnn4MkYsdIpZRn+xcN\r\nvplTiO8C6UZSaKrT/bC+tgdVoAGy32UOeQIDAQABAoGAJ6Fv1Zwpyh73Zav3W4cNZl0C8cuyC23U\r\nbbJy1okk/pUcCRdGRVcAe2mLin9OeLdYeogoC/FNw8QRI7/2YIcQBOoVjLTTl7zOVa7CfXkqWn9j\r\npGrgK5jQZnn2Shl9y3oRtxK+CoAZdfPlBEfkk7KbbWUpqWTRzJ5GUHsgSVQKtp0CQQDJOmU5xzhf\r\n4GzV6I0eNEEHk6Aei13HRwAbdvd1XhMLY4c4D0kcnOcVc9seVT37WzOSVFIa3ud2WVygeV3AMb1D\r\nAkEA9ZNRUdea4oc7Y/g4PdOLZ55qmL0hBZ1rlHoEU8bK6ITvVGwKCFEhD2nsiUE/TbbCgpBMhuFq\r\nQ6Nq63bR0IaLkwJAKMmxYvjCsIxpAyLUF983nzWJKyfMpmv51ZdTqXKcIZ7W9cIDa81R+cM2Evvs\r\nSFrAJVT6H4A3IoISiGSRYDe0yQJAX6oF0bYF1h0MG8OEVUFlWvYxXFLA3GkYkXx+1wvn23B9swtr\r\nVRYVpOWEiWtrd6CsYSRJS3ngZXzxl8xvq6XeFQJAJOt/p9iiz2u7q/cWSJRCqW2v1KmSz2R0qzlS\r\nte5d47oldddVHwf5KEwgi4I47dVvM4ASMXMjh0zHV26jJLOLAg==\r\n-----END RSA PRIVATE KEY-----";
            dictionary["sixunyun.com.cn"] = "-----BEGIN CERTIFICATE-----\r\nMIICBzCCAXSgAwIBAgIQbAPoCeP6GLJDCR8m2GWZljAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTExMTEwNzM0NTNaFw0zOTEyMzEyMzU5NTlaMC0xKzApBgNVBAMeIgAqAC4A\r\ncwBpAHgAdQBuAHkAdQBuAC4AYwBvAG0ALgBjAG4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\r\nANRByE4qOPF2dreYDx54md3caQkKFBtx56DDTLYF4Ln6bipkIdFh3rWyaXBN1OpwggGceiPtj3KI\r\nAvK4DdrcU/Q1giShN38Xut0kYr1FG1wwprsz0LdnYOQjtpO54D3mVEP3mRFWujjQaeEfdaxsNlAX\r\nArtM5/GoYKzw8SEmCSy5AgMBAAGjSTBHMEUGA1UdAQQ+MDyAEDKI/IvvruZTk579VjBv0OuhFjAU\r\nMRIwEAYDVQQDEwlVTlNBRkUtQ0GCEFAap8ITpqGYQt5qeJWDsB4wCQYFKw4DAh0FAAOBgQDWvdSO\r\nroAQG0GlcigrgRoSBNbuqpYxRjWhgVuT/g6Q6+DLSHjpRXZg8ugu/5OoR9mIEDe+pvsKoQBYKvm7\r\n6rk9XF5+sWbcBGhRvKH/AYcmlHmJHTjioWguXPBtcOy+UPHObPtjNvSIuDff5nD3P2W5+gcIqCXY\r\nEl0s+zPb5MEFLA==\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQDUQchOKjjxdna3mA8eeJnd3GkJChQbceegw0y2BeC5+m4qZCHRYd61smlwTdTq\r\ncIIBnHoj7Y9yiALyuA3a3FP0NYIkoTd/F7rdJGK9RRtcMKa7M9C3Z2DkI7aTueA95lRD95kRVro4\r\n0GnhH3WsbDZQFwK7TOfxqGCs8PEhJgksuQIDAQABAoGAV9Z1Pyun7vz4Ohf6QcDk4/RfnzcFhSoJ\r\nEfVgXH9oNW6WgoJ3oD+hO43+plP/RZmTo3kO7qlT0LDKj4ltamH9d3RmF47MRYrPc+DKXWqL3wFG\r\nDocHnSqNKoYDdgkgcdBAXzj1tWb+vPhLL+k+TjnZjvgl30umqhO5wUVbyiYBiaUCQQDj8/WOgOue\r\nhc/8a8r4x6yNnlDRMc/F/8eSfjpYgFq1qWCz4IKNw+HPl/s6MgfFIhWQTJLIsO3ldv4h9gbiFOKL\r\nAkEA7l9umY2xF8RBkdA0xQq3TNMCtFgDxFuZMOmM5z70aPhx7Nfm383C2t94OiOop0UT/SMSoapf\r\nnEBkJL6jzkAqSwJAQeUnCf/InPWvrxd2AD6waevnDuIoXuNWzMlCkozgK/1/n9/5vYNvhnQ3wpXt\r\n2xXESAdqsys6SggA5M5bJQXGiwJBANbgVe27iWkYM9dCbV814rgw+p4hPPwTagtqbObDnETHuMK8\r\neNVEQSNWEKWwIUbvgS5OIGx1DYznip6I71ZsBvMCQEBfG2iYYpkAEmrbJ+ZQUbvVkITuAB14FYUC\r\n2yvFeQ9rMaxKd5KIuTvy6h59qOpGJ+YeNf5Xgg1jl3+fk7rGHh8=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["starpos.com.cn"] = "-----BEGIN CERTIFICATE-----\r\nMIICBTCCAXKgAwIBAgIQ4OjoObtWRo9KBbYRwXao4jAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMDAxMDYxMzMxNDlaFw0zOTEyMzEyMzU5NTlaMCsxKTAnBgNVBAMeIAAqAC4A\r\ncwB0AGEAcgBwAG8AcwAuAGMAbwBtAC4AYwBuMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCt\r\n9q/9Zwzs6Gd4llojNFhAbODgHz0ltH2sQMTgemu5H64csDq/aCP6MoPL+cdsAvepmkBqPvPLP2wy\r\nIkX08y2BDOQg4duIJ40sfgud9WtIcf9Hx5+Ze0TjdGEmnkhHmW2n5qfWNoGjvzRSvsZlw2t8Gzkb\r\nKAc1yM/dVfdM4QaAIQIDAQABo0kwRzBFBgNVHQEEPjA8gBAyiPyL767mU5Oe/VYwb9DroRYwFDES\r\nMBAGA1UEAxMJVU5TQUZFLUNBghBQGqfCE6ahmELeaniVg7AeMAkGBSsOAwIdBQADgYEAVASImrsQ\r\n3J3dIQBSUhDHwWoUmI8zB+tVyCZ17noWUabnadYmauqqt5ihEm7AKoKhpiBRyg1AVn20lvqf/9C5\r\nF+QW0mGMJvU2Cu4SZ2Fyri1SQcxvMD6O3AG4hUc1AI5aGyz1UXDypkHvK+J+pLR4rcrFTc9Sl1JB\r\nZ3y3qcGfmLs=\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQCt9q/9Zwzs6Gd4llojNFhAbODgHz0ltH2sQMTgemu5H64csDq/aCP6MoPL+cds\r\nAvepmkBqPvPLP2wyIkX08y2BDOQg4duIJ40sfgud9WtIcf9Hx5+Ze0TjdGEmnkhHmW2n5qfWNoGj\r\nvzRSvsZlw2t8GzkbKAc1yM/dVfdM4QaAIQIDAQABAoGBAIfIQWtnkMYlTAXqTOanh66ZjRhCKccR\r\nTvow/7o6s3QmTw8jWmdl0JcL8KU4C7i5xDdEJ70F7+IXWcrzx2i+mieTgAPRyJ38bujkO0Iq3kOZ\r\nAw2jYQFMhi5zfdPMkoj3Zwa3czk+5tbplSnokEZbgqBa2X8UeMv6v4Jt84n/IlTFAkEA3Avmb1PS\r\nPbZDdoO3Te4fOT/oxm2cnSpmS0frwNSbIvGGuv8ffPRDyvDPQE/C+JWJY+qXNMvxKL/z1Emse/9s\r\ndwJBAMpjO/wb9nzKN40ArMP2gAUcpLtEkkl/6YGy0IFiuv3Rs9kJ2r4EEyBji6xBKYbu+MTrgUC3\r\n4AzZfcU121r7VicCQBGXJfGqWrkyM8xqlSG2smpKMJqEMqvhstG7yx3cIRa3BhU2xdagVDcJ7xdu\r\nCOEEWzpQi4vd7cZbKevDg/VZotsCQH3AlRf8A/bb6xJYtgB5HGiQuKaHX+H9cYieI8IRJ6DoeLhF\r\n0D266Gt6juG0B2qI99fbgQ9GcRdq2CP+Z9KrUocCQGBKHyBynx07p6y4jqyoi9JeHEiHUf90XEFe\r\nF/tT12JOgYUM9Umnb/6ahxSJv64FXJpBIdc49DKfye8vGWVFrgk=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["www.qq.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB7zCCAVygAwIBAgIQp3tW/Tmw5aNM5xoNa4hsJTAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMDEwMTYyMDAzMzdaFw0zOTEyMzEyMzU5NTlaMBUxEzARBgNVBAMTCnd3dy5x\r\ncS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOBRIyK1+ufUUne0g+AkJ2Hqj7N/KJ6o\r\nJtaVeibZ+NohwqJEDn4eOTMjbuiMQgB/p202hB86Ps7dCR9fFO/LcSsUiExq3WeCQ3cLfvnaG33k\r\nvPA2/2kdtw1DiCXuIWru5Zd5dCVYkXQ3tAyNehZoPxz1ZXxp7TzGAXtDnZ9QHsKJAgMBAAGjSTBH\r\nMEUGA1UdAQQ+MDyAEDKI/IvvruZTk579VjBv0OuhFjAUMRIwEAYDVQQDEwlVTlNBRkUtQ0GCEFAa\r\np8ITpqGYQt5qeJWDsB4wCQYFKw4DAh0FAAOBgQAlyA/6RzZysAMJSxYhB75gWTLB+9KuhiuAAXWj\r\nrrOQqs86vakJnIKM/v0j31H1J2fDCv9WZ9XZUybjUt5CcgY3iC3r5T15KHMYCQxMpSnpn5Hw7nvA\r\nrvprkB6LKLOWpUOAVsLcLz7qpfED4j34SuUegBSN6I5ucopAOvjN0vJ2yA==\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXQIBAAKBgQDgUSMitfrn1FJ3tIPgJCdh6o+zfyieqCbWlXom2fjaIcKiRA5+HjkzI27ojEIA\r\nf6dtNoQfOj7O3QkfXxTvy3ErFIhMat1ngkN3C3752ht95LzwNv9pHbcNQ4gl7iFq7uWXeXQlWJF0\r\nN7QMjXoWaD8c9WV8ae08xgF7Q52fUB7CiQIDAQABAoGBAM9f0zakvDeUX0URGhWd9tabzYuok7nR\r\nRE5+0/WU721hZpkyh59qe4DeUgskl2P0n6jkjFJ+O1BsoaFh+m4RSyVIBZjjkzf6F70qfpKhLPkB\r\nfldLZLRBb/nyaqnSDtbJAKX7NzP9wcaNPnXJGgVSmKkTzjKgdat8VZrt6JNGXjxdAkEA+spcAG/K\r\npJjjT+kUiFjjCSLJ+3SbN62zCNIHG1iosn3+LLelZwuCtJaznkoCdwLPsXrXcY+PZKshWa0/6ln+\r\ndwJBAOT5/5I+NNqXaxjGuSCyhLCVJb9vk+fEl5EYflaOh7dABBmIc4io9RhclWNRS686P+t0NOUQ\r\nORYjhPe+xU74hv8CQQCwlEqzBANqYTuryDDsz6kLhbMxmaiwS10DmN3oI0SkaJHOan/LTg95l6Jg\r\nkTurEA+spxGKo8oS12tj+NhH6ZWBAkBDiUFKXzKzrqmV+zcrX7wnYTZrCnvzhla2IyVQXmXFNQqA\r\nhXCeREdWUih1zMqn+mRUDEh1r51G3F8hu5Dyw/b9AkBPJH63MLu4PrgsA5Q12D78e9UwljO4cdju\r\nCzLcWmj/9PX3qg0qX/36RGdOHqJBjW5ZOS0o8R0QPBo16emjv7eL\r\n-----END RSA PRIVATE KEY-----";
            dictionary["xiangqianpos.com"] = "-----BEGIN CERTIFICATE-----\r\nMIICCTCCAXagAwIBAgIQLsksLKqqmoFHICopGZUUZjAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0xOTEwMTgxMDI2MzNaFw0zOTEyMzEyMzU5NTlaMC8xLTArBgNVBAMeJAAqAC4A\r\neABpAGEAbgBnAHEAaQBhAG4AcABvAHMALgBjAG8AbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC\r\ngYEAw0URr9V/fdkihGH2IqJXiudCcF1Xaqi+Tsu5DEy4zDsrmK4XvpIqFJs8M118FdgGCCYqJwCo\r\nSavMcSn7iYrXn5+KjDt0zFdifVlV3JhJjT8n3dWrCBzWdUcuMexAD2XNeTdXUM7lOen9J+n+oVqq\r\nWZaFAw8rOPjpSzD8St9ledUCAwEAAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EW\r\nMBQxEjAQBgNVBAMTCVVOU0FGRS1DQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBAAd2\r\n9u3YTR3Es7h9Cy/To4R0yvCoj90yp/9Py9QFFw9B0wmfcqTXj5Tlpsh9Ae26qN0fVGO4OZNUXB7z\r\ng52c2zQtAhG2o6mQia1NJgg7UNtJxWWXIurCby1ihubfaC7Xj4NjbVQVvKMdpOKPyDnjayxvNVog\r\n+iMtRngrVh+LrT0Q\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICWwIBAAKBgQDDRRGv1X992SKEYfYioleK50JwXVdqqL5Oy7kMTLjMOyuYrhe+kioUmzwzXXwV\r\n2AYIJionAKhJq8xxKfuJitefn4qMO3TMV2J9WVXcmEmNPyfd1asIHNZ1Ry4x7EAPZc15N1dQzuU5\r\n6f0n6f6hWqpZloUDDys4+OlLMPxK32V51QIDAQABAoGARtv7jRkmiJ6Q3gVGck8DAY7mFyxoGnZd\r\niO54mjQFI2edbGxQhYE47/1dHS6hZrPbjH188mZUq1dCexZHByRxFgLG2RL/zbpFTNjnDapBtyq/\r\n0fLN1nPuGutPbpOfzslpSHEZlI1Py6uOaVx5ay/+Tvd9RIQXooR88BkTIIhS/EkCQQDz6LZx5xXD\r\n5EP6f7PMOb4QFfLK2TxaKSNhVcoNAV0gzx0hwYEG7wagQ8EXhJn3CSDfss+BuK5bEAYjMl9UTF6T\r\nAkEAzPMbtvx4s4nb9FWPq2i61YVOMpXunkQDUt0ksMgL1oy11YlZpHp2mCGtffIkZRlirRZno0au\r\nOVuT6f6bAnse9wJAEdHKon+zg2BF5yM1S5JcZGh2GIPOePfQcegGnvSejSsUgcbVWmBUJ5lLniA9\r\n72JnWHCD4IJRmq2NBT1E4a/CqQJAOA8PN6AbS9Cbj1uP7qy43gqWdxO3ryafWh0PGiO9yTO30O6+\r\nzFSK99XOZLLE7bph2UJVmr2MjjfUX566u5T9xQJAPB+i5SZpkiKIaMbq/VrOgVlf7gz+DMeiDvk+\r\nbac8PlkXVOwF3q4CpdEqyrrATR5aYLCizlOVpC5STnfnUbTDlw==\r\n-----END RSA PRIVATE KEY-----";
            dictionary["yolipai.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB/zCCAWygAwIBAgIQMRHnyFUcCrtPLCneAZnGbDAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMDExMDYwOTA4MjNaFw0zOTEyMzEyMzU5NTlaMCUxIzAhBgNVBAMeGgAqAC4A\r\neQBvAGwAaQBwAGEAaQAuAGMAbwBtMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhiGOnsFdH\r\nT/gf3EfqKBIhO6jQ9hg7w31n05ZXdizXIF91Ed57xxzyfNMgji/mnFbKHFajOjzs6bFmb6ugfvxL\r\nsZtQvPsmzotolKEzjzEdERmhOPtYclEB/qIoJv9b5JQBitC8ZT3JJK55nKgTD5odSQK0jvvIqj4L\r\nw5fYcKRmYQIDAQABo0kwRzBFBgNVHQEEPjA8gBAyiPyL767mU5Oe/VYwb9DroRYwFDESMBAGA1UE\r\nAxMJVU5TQUZFLUNBghBQGqfCE6ahmELeaniVg7AeMAkGBSsOAwIdBQADgYEAS0HZ5U16Wjufhhty\r\n3boHshYeK+mZOJC3xVZSrDl3zsk078+Dc14PTsn5Y5ps7fBCAvpoEY0USQ1V82cpp6S4tGVJzscQ\r\nsxczILsICOx+mqBAF42mSWgKt1/frViSppTa960gNDXbt99VGmVnOqw1TNEHeiW6m2bPcRHCqRMx\r\nldY=\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXQIBAAKBgQDhiGOnsFdHT/gf3EfqKBIhO6jQ9hg7w31n05ZXdizXIF91Ed57xxzyfNMgji/m\r\nnFbKHFajOjzs6bFmb6ugfvxLsZtQvPsmzotolKEzjzEdERmhOPtYclEB/qIoJv9b5JQBitC8ZT3J\r\nJK55nKgTD5odSQK0jvvIqj4Lw5fYcKRmYQIDAQABAoGADBQ38iU5p3IbAenUWDApOGpvkjF7/sdr\r\nkgH9DVYg9KyhMC3y0oJJhJs224mB+0HoTA7UfQ2DcdTaUXgtovzqGjH8D/8FhiyCGmu3qTWPRmDW\r\nOQMP1ykuJWkMy39nTo1PMYhsmawoxr7dhcY0/oNsK5vjltcjNfqRPm6BYp8FLtkCQQDqpJKMlr7B\r\nYI5KgqT3AZMd4FE9jxNn960gflup6YuOXxzT4ZNk+qCgrtgIN2ggUixXI35WTZwUM/FCdRzzONQn\r\nAkEA9g+Kw5vlNGLMce+FBiK0+SkhyzlYXdYm+kcPIuEoiuJFKW5/J3flloEdu+ofvs17Xr+moiPP\r\nGauB8Z0uHQPeNwJBAI9VjPg4tbonI4S8nc0NtzLO7pGuLuqZz7ZDufbnZYrI6zE7YPCUcT72z5zl\r\nS8RCrjdkxS4vJqLov/4a0F57Xo0CQQDRVIOOye+CU5LuUwBuKdSgK9fuFgkRO4DJZu5/k+Fz1e9U\r\nwgY2w490LL/o/9Kl9hXAk3bldWVYx0mzDS8PzBydAkAz0gdcyiy9i82Mxqk9WEgFHZhUt5KA+2VR\r\n5TISxK87Xt4TkASmgSIBuqAGqf4N2qlv0d3ZFzhNUxIKpiNR59sY\r\n-----END RSA PRIVATE KEY-----";
            dictionary["mapi.bestpay.com.cn"] = "-----BEGIN CERTIFICATE-----\r\nMIIB+DCCAWWgAwIBAgIQc3C5iYPKFLFPtyP64HzhLDAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCVVO\r\nU0FGRS1DQTAeFw0yMTAyMDIxMjAxNTNaFw0zOTEyMzEyMzU5NTlaMB4xHDAaBgNVBAMTE21hcGku\r\nYmVzdHBheS5jb20uY24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK5/Ll5GtrGBxgEAwXgX\r\nJdl1nGyqUbobZtPdOK0VB/1hzbawfKaqP+6TajJy/do9GfAWQ/MCStxso6ZV6W4/8AmKRcCb5kTo\r\nORe/kOZ/rqPcJ3WgcKNBetFnqSucmtGQup0SvgOJ+GmeMRnmHs1zEdZ33IJvlsBbKt0y/l7gjHgl\r\nAgMBAAGjSTBHMEUGA1UdAQQ+MDyAEDKI/IvvruZTk579VjBv0OuhFjAUMRIwEAYDVQQDEwlVTlNB\r\nRkUtQ0GCEFAap8ITpqGYQt5qeJWDsB4wCQYFKw4DAh0FAAOBgQAY1fruOgKBST1atm2fmMF8hQb5\r\ngXqw5jIi0VoOPbL5IXfkpNM+XzODSkhtMjYM11DLp6vnZz9nZcaTCYNC6v5sZLp9T7eaH1I2VF0r\r\nhzwVRWdw5tU9tC47MjD/TB6pKMC2OuI621pa6O13QAHISRcHNy+mJDxDgDxGMtTNIBoWbg==\r\n-----END CERTIFICATE-----\r\n-----BEGIN RSA PRIVATE KEY-----\r\nMIICXAIBAAKBgQCufy5eRraxgcYBAMF4FyXZdZxsqlG6G2bT3TitFQf9Yc22sHymqj/uk2oycv3a\r\nPRnwFkPzAkrcbKOmVeluP/AJikXAm+ZE6DkXv5Dmf66j3Cd1oHCjQXrRZ6krnJrRkLqdEr4Difhp\r\nnjEZ5h7NcxHWd9yCb5bAWyrdMv5e4Ix4JQIDAQABAoGBAISdVZECru/ij6fNejuZZAOLlbEkE+6b\r\nyp8zXlJ0TFkuTlgMcv97HhFj6W6j4/dLPn4vfb6evGQfEJRmcHyAjRyBvJnCwwqgdYHGJhmjw+SI\r\n+seFIx5h6s5g42rsMgM/bLyhY12YH51I4Y5Z7FbIAYlMIEvdnSEzP3/CwksAI5VVAkEA1MwuwvB1\r\nHm3HGcAfqSN2dHssV9VyupYOFH4L7e/HgPSNNxMIlChUlBND1nXjdo0voph9A9ug4SxQeAEbaVFz\r\nNwJBANHsYDHdcmPAlPPr0tm+ODWmhEy4Tdgp7aSLHxvOzM7SVJj/wcWW+0qgo4YX9jZZmp4OPjoP\r\nP2c9mE8lGTltFYMCQBo8UkeWfdoSjsmN9llUFfameQEbP9nhRjsgjzf2qBIuFHsFzbj2f/cBqQt3\r\n3WNwZL8XLdKb8WnRnNouyMJjWGECQEucHOW5AjuFoODeXrqItgw05tAPThJ+v5aVeWX1rXUM8uWM\r\nsQlvISG3DE7/EHJxAazOKoGU/lw8JkDTdutlK+sCQHlCSPdk8H6BTvsm7QtMUnWLDc8rzLSlX5CK\r\nFF5nHvyfkTan6bd9GG0frKOvD9P15sE98YivS9Ig3ObdbHR7wGw=\r\n-----END RSA PRIVATE KEY-----";
            dictionary["api.shouqianba.com"] = "-----BEGIN CERTIFICATE-----\r\nMIIB9zCCAWSgAwIBAgIQ7OCDGtYOXq1EGFqdxRqvdjAJBgUrDgMCHQUAMBQxEjAQ\r\nBgNVBAMTCVVOU0FGRS1DQTAeFw0yMTA2MDYxNjQ1MzVaFw0zOTEyMzEyMzU5NTla\r\nMB0xGzAZBgNVBAMTEmFwaS5zaG91cWlhbmJhLmNvbTCBnzANBgkqhkiG9w0BAQEF\r\nAAOBjQAwgYkCgYEAxi2UTf/+n8p5bVVeFI2UbixBIzdGycD1v6RDtE55x9kXC6+5\r\nY2UdL/E4fTZHqdEci1EV3sM9paIX34ZHeNT7B8DraNOPmbmVe+HcxzJN0LBY4Qfe\r\nrz9CZD8BThFnf3a1uNhe5gblv+I6vCkrBvvdLXENvQtOgdJBpUftisxaMEUCAwEA\r\nAaNJMEcwRQYDVR0BBD4wPIAQMoj8i++u5lOTnv1WMG/Q66EWMBQxEjAQBgNVBAMT\r\nCVVOU0FGRS1DQYIQUBqnwhOmoZhC3mp4lYOwHjAJBgUrDgMCHQUAA4GBAAW3+l01\r\nD7roy8HLQbf+lpDhTUgQ4dkttl79lT6yXTRaDB2qFs6pw2FajiXDnzXXqTgO5c4w\r\ny5BN1221SHybTAH4+tZwcr52IS3rTF/0cqnn2RJvtQVJG9t54/+tCRv/zggRAS3D\r\nwEHxO2a60zME97EKKukFKq0QJ2pHKkADOTAw\r\n-----END CERTIFICATE-----\r\n-----BEGIN PRIVATE KEY-----\r\nMIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMYtlE3//p/KeW1V\r\nXhSNlG4sQSM3RsnA9b+kQ7ROecfZFwuvuWNlHS/xOH02R6nRHItRFd7DPaWiF9+G\r\nR3jU+wfA62jTj5m5lXvh3McyTdCwWOEH3q8/QmQ/AU4RZ392tbjYXuYG5b/iOrwp\r\nKwb73S1xDb0LToHSQaVH7YrMWjBFAgMBAAECgYB27i+MR87k0jvg81RMfVLQc1p7\r\n6dZfiZ9xbQD8mgPXfV6pMsHM9od3mAnQityi+s1ohjbbwsuiNQ6ipBEMYLRsulzP\r\nCHxFk51hJPh7VifzybU7RSn0Hae2uPD7uZlyL+YZLPFe2Owr0veECVYZoNG84OgC\r\nZM+C8k3GfPAzdXZimQJBANwcRN+PAp6b1I5BGM8DJYLtaUcs40l1TjloWIHYtork\r\ngam07bOmXP5/B/4i0ZlQtIuw/JNz0LJELE6eEFPN978CQQDmfdIS/WMtVmOoDwTm\r\n1KkOxMc9BZ/o3L6JSj9r4XNsQGH6lpMRoUb1XSxVClmpCFdKyw7vh6NntwOB4NyG\r\nabj7AkEAvjLzVNcoJVR0pQQdYuzOIkfynB1uvdBO6w5+xJ02h+iTHsmISZ/tZcDx\r\ncCo4QipaCQfECcqfQRvlyX2OkEw/0wJACW+fOQ3MkJ+XxtqOjdCo9yTRL0tap5LZ\r\n7g7vF8CMFCNyn2qorLEYkZT16qlY0FW6FSLJAr9fzjAs4ZVOEeakHwJBALe5SIs5\r\nNH0v6ieWLphZ3cFLQTggcPAzOuoWARyNaGv/2CQpLrIv8+6brKkSwW3T9SAnqKkz\r\nHoeyRywnI9HF40M=\r\n-----END PRIVATE KEY-----";
            PEMDICT = dictionary;
        }



    }
}
